package Modelo;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Random;
import java.util.Vector;

public class Partido {
	
	private String codigoPartido;
	private Equipo equipoCasa;
	private Equipo equipoVisitante;
	private Arbitro arbitro;
	private int golCasa;
	private int golaVisitante;
	private int marcadorFinal;
	private int i;
	private List<Gol> goles;
	
	public Partido(String codigoPartido, Equipo equipoCasa,Equipo equipoVisitante, Arbitro arbi,int marcadorFinal) {
		super();
		this.codigoPartido = codigoPartido;
		this.equipoCasa = equipoCasa;
		this.equipoVisitante = equipoVisitante;
		this.arbitro = arbi;
		this.marcadorFinal = marcadorFinal;
		goles = new ArrayList<Gol>();
	}
	
	public int verPuntosObtenidos(Equipo e) {
		if(golCasa == golaVisitante)
			return 1;
		else 
			if(golCasa > golaVisitante)
				if(e.getCodigo().equals(equipoCasa.getCodigo()))
					return 3;
				else
					return 0;
			else
				if(e.getCodigo().equals(equipoCasa.getCodigo()))
					return 0;
				else
					return 3;
			
		
	}
	
	public boolean estaEquipo(Equipo e) {
				if(e.getCodigo().equals(equipoCasa.getCodigo()) || e.getCodigo().equals(equipoVisitante.getCodigo()))
					return true;
				else
					return false;
			
		
	}


	public String getCodigoPartido() {
		return codigoPartido;
	}



	public void setCodigoPartido(String codigoPartido) {
		this.codigoPartido = codigoPartido;
	}



	public Equipo getEquipoCasa() {
		return equipoCasa;
	}



	public void setEquipoCasa(Equipo equipoCasa) {
		this.equipoCasa = equipoCasa;
	}



	public Equipo getEquipoVisitante() {
		return equipoVisitante;
	}



	public void setEquipoVisitante(Equipo equipoVisitante) {
		this.equipoVisitante = equipoVisitante;
	}



	public Arbitro getArbitro() {
		return arbitro;
	}



	public void setArbitro(Arbitro arbi) {
		this.arbitro = arbi;
	}



	public int getMarcadorFinal() {
		return marcadorFinal;
	}



	public void setMarcadorFinal(int marcadorFinal) {
		this.marcadorFinal = marcadorFinal;
	}
	
	public void generarPartido() {
		Random r = new Random();
		Gol gol;
		int cantidadGoles = r.nextInt(6);
		golCasa=cantidadGoles;
		for (int i = 0; i < cantidadGoles; i++) {
			int j = r.nextInt(equipoCasa.getJugador().size());
			goles.add(new Gol(equipoCasa, equipoCasa.getJugador().get(j)));
			equipoCasa.getJugador().get(j).setGoles(equipoCasa.getJugador().get(j).getGoles()+1);
			
		}
		equipoCasa.setGolesAfavor(equipoCasa.getGolesAfavor()+cantidadGoles);
		equipoVisitante.setGolesEncontra(equipoVisitante.getGolesEncontra()+cantidadGoles);
		cantidadGoles = r.nextInt(6);
		golaVisitante=cantidadGoles;
		for (int i = 0; i < cantidadGoles; i++) {
			System.out.println(equipoVisitante.getJugador().size());
			int j = r.nextInt(equipoVisitante.getJugador().size());
			goles.add(new Gol(equipoVisitante, equipoVisitante.getJugador().get(j)));
			equipoVisitante.getJugador().get(j).setGoles(equipoVisitante.getJugador().get(j).getGoles()+1);
			
		}
		equipoVisitante.setGolesAfavor(equipoVisitante.getGolesAfavor()+cantidadGoles);
		equipoCasa.setGolesEncontra(equipoCasa.getGolesEncontra()+cantidadGoles);
		equipoCasa.setJuegosJugados(equipoCasa.getJuegosJugados()+1);
		equipoVisitante.setJuegosJugados(equipoVisitante.getJuegosJugados()+1);
		if(golCasa == golaVisitante){
			equipoCasa.setJuegosEmpatados(equipoCasa.getJuegosEmpatados()+1);
			equipoVisitante.setJuegosEmpatados(equipoVisitante.getJuegosEmpatados()+1);
			equipoCasa.setPuntosAcumulados(equipoCasa.getPuntosAcumulados()+1);
			equipoVisitante.setPuntosAcumulados(equipoVisitante.getPuntosAcumulados()+1);
		}
		else 
			if(golCasa > golaVisitante){
				equipoCasa.setJuegosGanados(equipoCasa.getJuegosGanados()+1);
				equipoVisitante.setJuegosPerdidos(equipoVisitante.getJuegosPerdidos()+1);
				equipoCasa.setPuntosAcumulados(equipoCasa.getPuntosAcumulados()+3);
			}
			else{
				equipoCasa.setJuegosPerdidos(equipoCasa.getJuegosPerdidos()+1);
				equipoVisitante.setJuegosGanados(equipoVisitante.getJuegosGanados()+1);
				equipoVisitante.setPuntosAcumulados(equipoVisitante.getPuntosAcumulados()+3);
			}
		
	}
	
	

}
